package com.shujia.wyh.day15;

/*
        String类的判断功能：
            boolean equals(Object obj)
            boolean equalsIgnoreCase(String str)
            boolean contains(String str)
            boolean startsWith(String str)
            boolean endsWith(String str)
            boolean isEmpty()

 */
public class StringDemo7 {
    public static void main(String[] args) {
        //创建两个字符串对象
        String s1 = "hello";
        String s2 = "world";

        //public boolean equals(Object anObject)将此字符串与指定对象进行比较。
        // 其结果是true当且仅当该参数不是null并且是String对象，表示相同的字符序列作为该对象。
        System.out.println(s1.equals(s2));
        System.out.println("================================================");
        //public boolean equalsIgnoreCase(String anotherString)将此String与其他String比较，忽略案例注意事项。
        // 如果两个字符串的长度相同，并且两个字符串中的相应字符等于忽略大小写，则两个字符串被认为是相等的。
        String s3 = "heLLO";
//        System.out.println(s1.equals(s3));
        System.out.println(s1.equalsIgnoreCase(s3));
        System.out.println("================================================");
        //public boolean contains(CharSequence s)当且仅当此字符串包含指定的char值序列时才返回true。
        //判断字符串中是否包含小字符串
        System.out.println(s1.contains("ll"));
        System.out.println(s1.contains("ho"));
        System.out.println("=================================================");
        //public boolean startsWith(String s)测试此字符串是否以指定的前缀开头。
        //判断大字符串是否以某小字符串开头
        System.out.println(s1.startsWith("lo"));
        System.out.println(s1.startsWith("h"));
        System.out.println(s1.startsWith("hel"));
        System.out.println("=================================================");
        //boolean endsWith(String str)
        //判断大字符串是否以某小字符串结尾
        System.out.println(s1.endsWith("w"));
        System.out.println(s1.endsWith("ll"));
        System.out.println(s1.endsWith("lo"));
        System.out.println("=================================================");
        //boolean isEmpty()
        //判断字符串是否为空
//        System.out.println(s1.isEmpty());
        String s = "";
        String s4 = null;
//        System.out.println(s.isEmpty());
//        System.out.println(s4.isEmpty()); //NullPointerException

        System.out.println("======================================================");
        //需求：比较s与是s1的值是否相同
        System.out.println(s1.equals(s));
        //需求2：判断s1的内容是否是"bigdata"
        System.out.println(s1.equals("bigdata"));
        s1 = null;
//        System.out.println(s1.equals("bigdata")); //NullPointerException
        //解决方案1：今后比较两个字符串内容是否相同的时候，把确定的放在前面调用方法，避免发生空指针异常(优先推荐第一种)
        System.out.println("bigdata".equals(s1));

        //解决方案2：在比较之前，做一次Null判断
        if (s1 != null) {
            System.out.println(s1.equals("bigdata"));
        }else {
            System.out.println("字符串s1是为null");
        }


    }
}
